gltexgen - Man Page






glTexGen(3G)		       OpenGL Reference			  glTexGen(3G)



NAME
     glTexGend,	glTexGenf, glTexGeni, glTexGendv, glTexGenfv, glTexGeniv -
     control the generation of texture coordinates


C SPECIFICATION
     void glTexGend( GLenum coord,
		     GLenum pname,
		     GLdouble param )
     void glTexGenf( GLenum coord,
		     GLenum pname,
		     GLfloat param )
     void glTexGeni( GLenum coord,
		     GLenum pname,
		     GLint param )


PARAMETERS
     coord   Specifies a texture coordinate.  Must be one of the following:
	     GL_S, GL_T, GL_R, or GL_Q.

     pname   Specifies the symbolic name of the	texture-coordinate generation
	     function.	Must be	GL_TEXTURE_GEN_MODE.

     param   Specifies a single-valued texture generation parameter, one of
	     GL_OBJECT_LINEAR, GL_EYE_LINEAR, or GL_SPHERE_MAP.

C SPECIFICATION
     void glTexGendv( GLenum coord,
		      GLenum pname,
		      const GLdouble *params )
     void glTexGenfv( GLenum coord,
		      GLenum pname,
		      const GLfloat *params )
     void glTexGeniv( GLenum coord,
		      GLenum pname,
		      const GLint *params )


PARAMETERS
     coord
	  Specifies a texture coordinate.  Must	be one of the following:
	  GL_S,	GL_T, GL_R, or GL_Q.

     pname
	  Specifies the	symbolic name of the texture-coordinate	generation
	  function or function parameters.  Must be GL_TEXTURE_GEN_MODE,
	  GL_OBJECT_PLANE, or GL_EYE_PLANE.

     params
	  Specifies a pointer to an array of texture generation	parameters.
	  If pname is GL_TEXTURE_GEN_MODE, then	the array must contain a



									Page 1






glTexGen(3G)		       OpenGL Reference			  glTexGen(3G)



	  single symbolic constant, one	of GL_OBJECT_LINEAR, GL_EYE_LINEAR, or
	  GL_SPHERE_MAP. Otherwise, params holds the coefficients for the
	  texture-coordinate generation	function specified by pname.


DESCRIPTION
     glTexGen selects a	texture-coordinate generation function or supplies
     coefficients for one of the functions.  coord names one of	the (s,t,r,q)
     texture coordinates, and it must be one of	these symbols:	GL_S, GL_T,
     GL_R, or GL_Q.  pname must	be one of three	symbolic constants:
     GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE, or GL_EYE_PLANE. If pname is
     GL_TEXTURE_GEN_MODE, then params chooses a	mode, one of GL_OBJECT_LINEAR,
     GL_EYE_LINEAR, or GL_SPHERE_MAP. If pname is either GL_OBJECT_PLANE or
     GL_EYE_PLANE, params contains coefficients	for the	corresponding texture
     generation	function.

     If	the texture generation function	is GL_OBJECT_LINEAR, the function

			       g=p x +p	y +p z +p w
				  1 o  2 o  3 o	 4 o
     is	used, where g is the value computed for	the coordinate named in	coord,
     p , p , p , and p	are the	four values supplied in	params,	and x ,	y ,
     z1, and w3	are the	object coordinates of the vertex.  This	function can
     be	used to	texture-map terrain using sea level as a reference plane
     (defined by p , p , p , and p ). The altitude of a	terrain	vertex is
     computed by the GL_OBJECT_LINEAR coordinate generation function as	its
     distance from sea level; that altitude is used to index the texture image
     to	map white snow onto peaks and green grass onto foothills, for example.

     If	the texture generation function	is GL_EYE_LINEAR, the function

			     g=p 'x +p 'y +p 'z	+p 'w
				1  e  2	 e  3  e  4  e
     is	used, where

		     (p	'  p '	p '  p ')=(p   p   p   p ) M-1
		       1    2	 3    4	    1	2   3	4
     and x , y , z , and w  are	the eye	coordinates of the vertex, p , p , p ,
     and pe are	the valuesesupplied in params, and M is	the modelview matrix3
     when glTexGen is invoked.	If M is	poorly conditioned or singular,
     texture coordinates generated by the resulting function may be inaccurate
     or	undefined.

     Note that the values in params define a reference plane in	eye
     coordinates. The modelview	matrix that is applied to them may not be the
     same one in effect	when the polygon vertices are transformed. This
     function establishes a field of texture coordinates that can produce
     dynamic contour lines on moving objects.

     If	pname is GL_SPHERE_MAP and  coord is either GL_S or GL_T, s and	t
     texture coordinates are generated as follows. Let u be the	unit vector
     pointing from the origin to the polygon vertex (in	eye coordinates). Let



									Page 2






glTexGen(3G)		       OpenGL Reference			  glTexGen(3G)



     n'	be the current normal, after transformation to eye coordinates.	Let
     f = (f   f	  f )T be the reflection vector	such that
	   x   y   z
				  f = u	- 2n'n'Tu
			 _______________
			|  2   2       2
     Finally, let m = 2\|fx +fy	+(fz+1)	. Then the values assigned to the s
     and t texture coordinates are
					f
				    s =	__ + _
					m    2
					__   _
				    t =	m  + 2


     A texture-coordinate generation function is enabled or disabled using
     glEnable or glDisable with	one of the symbolic texture-coordinate names
     (GL_TEXTURE_GEN_S,	GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R, or
     GL_TEXTURE_GEN_Q) as the argument.	When enabled, the specified texture
     coordinate	is computed according to the generating	function associated
     with that coordinate. When	disabled, subsequent vertices take the
     specified texture coordinate from the current set of texture coordinates.
     Initially,	all texture generation functions are set to GL_EYE_LINEAR and
     are disabled.  Both s plane equations are (1,0,0,0), both t plane
     equations are (0,1,0,0), and all r	and q plane equations are (0,0,0,0).

ERRORS
     GL_INVALID_ENUM is	generated when coord or	pname is not an	accepted
     defined value, or when pname is GL_TEXTURE_GEN_MODE and params is not an
     accepted defined value.

     GL_INVALID_ENUM is	generated when pname is	GL_TEXTURE_GEN_MODE, params is
     GL_SPHERE_MAP, and	coord is either	GL_R or	GL_Q.

     GL_INVALID_OPERATION is generated if glTexGen is executed between the
     execution of glBegin and the corresponding	execution of glEnd.

ASSOCIATED GETS
     glGetTexGen
     glIsEnabled with argument GL_TEXTURE_GEN_S
     glIsEnabled with argument GL_TEXTURE_GEN_T
     glIsEnabled with argument GL_TEXTURE_GEN_R
     glIsEnabled with argument GL_TEXTURE_GEN_Q


SEE ALSO
     glTexEnv, glTexImage1D, glTexImage2D, glTexParameter








									Page 3